Linux 更改文件属性

1、chgrp:改属组 change group

语法:

1
chgrp [-R] 属组名 文件名

参数选项 [-R]: 递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2、chown:改属主,也可以同时更改属组 change owner

语法:

1
2
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

进入 /root 目录(~)将install.log的拥有者改为bin这个账号:

1
2
3
4
[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log

3、chmod:更改文件9个属性

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

例如:文件的权限字符为:『-rwxrwxrwx』, 可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r:4
  • w:2
  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 结果:

1
2
3
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0

设定权限变更为:770

语法

1
chmod [-R] xyz 文件或目录

参数 xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。eg: 770

Example: 将.bashrc这个文件所有的权限都设定启用

1
2
3
4
5
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

那如果要将权限变成 -rwxr-xr– 呢?那么权限的分数就成为 [4+2+1][4+0+1][4+0+0]=754。

符号类型改变文件权限

另一种改权限的方式。针对user,group,others设置权限。

  1. user
  2. group
  3. others

那么我们就可以使用 u, g, o 来代表三种身份的权限。

可选 :

  • u
  • g
  • o
  • a (指所有,即全部的身份)

操作符:

    • 加入
    • 除去
  • = 设定
    权限:
  • r
  • w
  • x

可以使用以下语法来设定:

1
chmod u=rwx,g=rwx,o=rwx 文件名

Example:将文件权限设置为 -rwxr-xr– ,

1
2
3
4
5
6
#  touch test    // 创建文件
# ls -al test // 查看默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test
# chmod u=rwx,g=rx,o=r test // 修改权限
# ls -al test
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test

而如果是要将权限去掉而不改变其他已存在的权限呢?
例如要拿掉全部人的可执行权限,则:

1
2
3
#  chmod  a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1